#include <iostream>
using namespace std;

const int N = 1e5 + 10;
int n;
int q[N], s[N]; //注意：q数组用于记录元素；s数组用于记录元素出现次数，若是次数超过1，需要移动左指针直至恢复为1

int findMax(int q[]){
    int res = 0;
    //i为左指针，j为右指针:i就是j往左最远的位置
    for(int i = 0, j = 0; j < n; j++){
        s[q[j]] ++;
        while(s[q[j]] > 1) {
            s[q[i++]] --;
        };    //左指针一直右移，直至本元素出现次数恢复为1
        res = max(res, j - i + 1);
    }
    return res;
}

int main(){
    scanf("%d", &n);
    for(int i = 0; i < n; i ++) scanf("%d", &q[i]);

    cout << findMax(q) << endl;

    return 0;
}